今天小妹久違的去游了一波泳,好懷念學校20塊的游泳池啊~~~ 覺得除了研究技術以外,擁有健康的身體也是非常重要的呢!
好的那麼今天來到了srv的部分,也就是自定義一種service
的格式啦! 因為service
其實就是一組分成request
和response
的message
,所以設定的方法跟之前.msg file的一樣,因此我們就直接來建立一個新的.srv
檔就好囉!
$ roscd beginner_tutorials
$ mkdir srv
$ cd srv
$ vim my_srv.srv
注意: srv檔要放在/srv
的資料夾內,這樣在做catkin_make
的時候才會撈的到資料喔!
那我想要做的service
就是可以讓我輸入一個id,就可以找到某個人的個資!
所以我設計的my_srv.srv
會長這樣:
int64 id
---
string name
string gender
int64 age
大概會長這樣吧~就是輸入某個人的id,就可以知道他的名字、性別跟年紀。
接著找到CMakeList.txt
內關於編譯新srv檔的註解:
# add_service_files(
# FILES
# Service1.srv
# Service2.srv
# )
將這些註解打開,並加入我們的my_srv.srv
檔案,所以改完以後會長這樣:
add_service_files(
FILES
my_srv.srv
)
設定完以後,回到package的根目錄執行catkin_make
,就可以看到他自動幫我們建立my_srv
格式的service
囉!
可以看到跟之前message
一樣,建立了很多不同語言可以使用的service
,是不是很方便呢!
使用rossrv list
指令可以看到所有的service
格式的訊息,這邊可以看到他已經幫我們在beginner_tutorials
底下建立好了my_srv
囉!
使用rossrv show
去看這個srv
,就可以看到關於此格式的訊息定義,也就是我們剛剛上面設定的request
和response
各給哪些資料:
建完以後當然就是拿來用啦! 做法跟message
的時候一樣,就是include/import那個模組,然後就可以使用囉! 那因為基本上跟之前做service
的時候用的add_two_ints
一樣,我想大家應該可以自己玩看看才對,絕對不是因為今天時間不夠的關係喔 XD